package com.dp.appi.service;

import java.util.List;
import java.util.Map;

/**
 * Created by xiaoji on 2016/5/9.
 */
public interface ExplorationService {
    /**
     * 获取踏勘点列表
     * @param exploration_type 踏勘类型(新建11 / 拆旧12)
     * @param stage_id 项目阶段id
     * @param id 当前用户id
     * @return
     */
    List<Map<String,Object>> explorationList(String exploration_type,Long stage_id,String id,String explor_id);



    /**
     * 获取10kv踏勘点（点位点）列表
     * @param exploration_type
     * @param stage_id
     * @return
     */
    List<Map<String,Object>> explorationList_high(String exploration_type,Long stage_id,String id);

    /**
     * 删除踏勘点
     * @param exploration_id 踏勘点id
     * @param id 当前用户id
     */
    void delExplor(Long exploration_id,String id);

    /**
     * 判断特征点是否存在
     *
     * @param feature_id
     * @param ptType
     * @return
     */
    boolean isExistFeature(Long feature_id,int ptType);

    /**
     * 获取踏勘点信息【app端获取点位信息】
     * @return
     */
    Map<String,Object> explorInfo(Long exploration_id);


    /**
     * 获取踏勘点信息
     *
     * @param exploration_id
     * @return
     */
    public Map<String, Object> explorBaseInfo(Long exploration_id) ;

    /**
     * 通过通道id获取特征点信息
     *
     * @param channelID
     * @return
     */
    public Map<String, Object> explorBaseInfoByChannelID(Long channelID) ;

    /**
     * 踏勘点信息设置
     * @param param 踏勘点参数
     * @param id 当前用户id
     */
    Long addExploration(Map<String,String> param,String id);
    Long addBj(Map<String,String> param,String id);

    /**
     * 获取定位点上级定位点
     * @param exploration_id 获取踏勘点id
     */
    Map<String,Object> beforeExp(Long exploration_id);

    /**
     * 判断特征点是否已经关联
     * @param featureId
     * @return
     */
    boolean isCorrFeature(Long featureId);

    /**
     * 更新踏勘典设
     * @param codesetId
     * @param explorationId
     */
    void upCodeSet(Long codesetId, Long explorationId);

    /**
     * 获取台区
     * @param stage_id
     * @return
     */
    List<Map<String,Object>> transformerList(Long stage_id,String id);

    /**
     * number、 before_exp、exploration_type、pt_id、lng、lat、corner、alt、distance、location_way
     * @param param
     * @param explorationId
     */
    void upExploration(Map<String, Object> param, Long explorationId);
    void upjckyExploration(Long exploration_id, Long new_before_exp_id);

    public Double returnCorner(Long exploration_id,double lng,double lat,Long befor_id,String type);


    Map<String,Object> exp_obj(double lng,double lat,Long befor_id);


    /**
     * 点位重新选择上联后下联中所有点位的台区标识更新
     */
    void updateExp_id(Long exploration_id,Long before_exp_id);


    Integer getClassify(Long stage_id, String id);

    /**
     * 修改通道特征点距离上级距离
     * @param exploration_id
     * @param distance
     */
    void upExpDistance(Long exploration_id, Float distance);
}
